/*
 * LINQ to LDAP
 * http://linqtoldap.codeplex.com/
 * 
 * Copyright Alan Hatter (C) 2010-2012
 * alan.hatter@gmail.com - http://hattercoding.blogspot.com/
 * 
 * This project is subject to licensing restrictions. Visit http://linqtoldap.codeplex.com/license for more information.
 */

using System;

namespace LinqToLdap.Mapping
{
    /// <summary>
    /// Interface for a class that maps an object to the directory
    /// </summary>
    public interface IClassMap
    {
        /// <summary>
        /// The <see cref="System.Type"/> of the class map.
        /// </summary>
        Type Type { get; }

        /// <summary>
        /// Validates the mapping
        /// </summary>
        void Validate();

        /// <summary>
        /// Produces a final mapping used for object contruction from the directory
        /// </summary>
        /// <returns></returns>
        IObjectMapping ToObjectMapping();
    }
}
